package cn.lingyangwl.agile.food.core.service;

import cn.lingyangwl.agile.food.model.entity.ShopTableCategory;
import cn.lingyangwl.agile.food.model.rqrs.table.TableCategoryResp;
import cn.lingyangwl.agile.food.model.rqrs.table.TableCategorySaveReq;
import cn.lingyangwl.agile.food.model.rqrs.table.TableCategoryUpdateReq;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 桌台分类
 *
 * @author shenguangyang
 */
public interface TableCategoryService extends IService<ShopTableCategory> {

    /**
     * 查询 桌台分类 所有记录
     *
     * @return 返回集合，没有返回空List
     */
    List<TableCategoryResp> listCategory();

    /**
     * 保存 桌台分类
     *
     * @param req 新增的记录
     * @return 是否保存成功
     */
    boolean saveCategory(TableCategorySaveReq req);

    /**
     * 更新 桌台分类
     *
     * @param req 修改的记录
     * @return 是否更新成功
     */
    boolean updateCategory(TableCategoryUpdateReq req);

    /**
     * 删除 桌台分类
     *
     * @param id 主键
     * @return 是否删除成功
     */
    boolean deleteCategory(Long id);
    
    /**
     * 批量删除 桌台分类
     *
     * @param ids 主键集合
     * @return 是否删除成功
     */
    boolean batchDeleteCategory(List<Long> ids);

    /**
     * 餐桌二维码
     * @param id 餐桌id
     * @param qrcodeType 二维码类型 {@link ShopCons.QrCodeType}
     * @return 二维码字节数组
     */
    byte[] genQrcode(Long id, String qrcodeType);
}
